<?php
if ( count( get_included_files() ) == 1 ) die( '---' );

class Saisie
{
	var $saisie_id;
	
	var $user_id;
	
	var $colonne_id;
	
	var $ligne_id;
	
	var $evaluateur_id;
	
	var $valeur;
	
	var $date;
	
	var $table;
	
	var $table_option_saisie;
	
	// Constructeur
	function Saisie() 
    {
		$this->saisie_id = -1;
		$this->user_id = $user_id;    
		$this->colonne_id = $colonne_id;
		$this->ligne_id = $ligtne_id;
		$this->evaluateur_id = $evaluateur_id;
		$this->valeur = $valeur;
		$this->date = date("Y-m-d H:i:s");
    	
    	
		global $tables;    	
		$this->table = $tables['PFLsaisie'];
		$this->table_option_saisie = $tables['PFLoption_saisie'];
    }
    
    // Load 
    function load($saisie_id)
    {
 
    	$sql = "SELECT saisie_id, user_id, colonne_id, ligne_id, evaluateur_id, valeur, date
							FROM `".$this->table."`
							WHERE saisie_id = '".$saisie_id."'";
		$data = claro_sql_query_get_single_row($sql);

	   if( !empty($data) )
	   {
		$this->saisie_id     	= $data['saisie_id'];
	   	$this->user_id     	= $data['user_id'];
	   	$this->colonne_id    = $data['colonne_id'];
	   	$this->ligne_id 		= $data['ligne_id'];
	   	$this->evaluateur_id = $data['evaluateur_id'];
	   	$this->valeur			= $data['valeur'];
	   	$this->date				= $data['date'];
	   	
	   	return true;
	   }
	   else
	   return false;
    }
    
    
    // Save 
    function save()  
    {
    	if( $this->saisie_id == -1 )
    	{
    		$sql = "INSERT INTO `".$this->table."` 
					  SET user_id = ".$this->user_id.",
							colonne_id = ".$this->colonne_id.",
							ligne_id = '".$this->ligne_id."',
							evaluateur_id = '".$this->evaluateur_id."',
							valeur = '".$this->valeur."',
							date = '".$this->date."'
					 ";
			// execute the creation query and get id of inserted assignment
		    $insertedId = claro_sql_query_insert_id($sql);

		    if( $insertedId )
		    {
		    	$this->saisie_id = (int) $insertedId;

		      return $this->saisie_id;
		    }
		    else
		    {
		        return false;
		    }
    	}
    	else
    	{
    		$sql = "UPDATE `".$this->table."` 
					  SET user_id = ".$this->user_id.",
							colonne_id = ".$this->colonne_id.",
							ligne_id = '".$this->ligne_id."',
							evaluateur_id = '".$this->evaluateur_id."',
							valeur = '".$this->valeur."',
							date = '".$this->date."'
					  WHERE saisie_id = ".$this->saisie_id;
			// execute and return main query
		    if( claro_sql_query($sql) )
		    {
		    	return $this->saisie_id;
		    }
		    else
		    {
		    	return false;
		    }
    	}
    }
    
    	function delete()
	 {
	 	$sql = "DELETE FROM `".$this->table."` WHERE saisie_id = ".$this->saisie_id;
	 	if( claro_sql_query($sql) == false ) return false;
		
		$sql = "DELETE FROM `".$this->table_option_saisie."` WHERE saisie_id = ".$this->saisie_id;
	 	if( claro_sql_query($sql) == false ) return false;	
			
		$this->saisie_id = -1;
		return true;
	 }
	 
	 

	// Recherche si un élément comporte déjà une saisie
	function chercherSaisieElement()
	{
		$sql = "SELECT saisie_id
				  FROM `".$this->table."`
				  WHERE colonne_id = '".$this->colonne_id."'
				  OR ligne_id = '".$this->ligne_id."'";

		return claro_sql_query_affected_rows($sql);
	}	 

	function chercherListeSaisieElement()
	{
		$sql = "SELECT saisie_id
			  FROM `".$this->table."`
			  WHERE colonne_id = '".$this->colonne_id."'
			  OR ligne_id = '".$this->ligne_id."'";

		return claro_sql_query_fetch_all_rows($sql);
	}	 
	 
	function chercheIdSaisie()
	{ 
		$sql = "SELECT saisie_id
				  FROM `".$this->table."`
				  WHERE colonne_id = ".$this->colonne_id."
				  AND ligne_id = ".$this->ligne_id."
				  AND user_id = ".$this->user_id."
				  ORDER BY date DESC";
		$data = claro_sql_query_get_single_row($sql);
		return $data['saisie_id'];	 
	}
	
	function enregistrerOption($valeur)
	{		
		$sql = "INSERT INTO `".$this->table_option_saisie."`
			SET option_id = ".$valeur.",
			saisie_id = ".$this->saisie_id;
		return claro_sql_query_affected_rows($sql);
	}
	
	function chercherOptionSaisie($optionId)
	{
	    $sql = "SELECT option_id FROM `".$this->table_option_saisie."` WHERE saisie_id = ".$this->saisie_id." AND option_id = ".$optionId;
	    return claro_sql_query_affected_rows($sql);
	}

	function chercherOptionSaisieUser()
	{
		$sql = "SELECT option_id FROM `".$this->table_option_saisie."` WHERE saisie_id = ".$this->saisie_id;

	   	return claro_sql_query_fetch_all_rows($sql);
	}
	/**
     * get id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getSaisieId()
	{
		return (int) $this->saisie_id;
	}
	
	/**
     * get user_id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getUserId()
	{
		return (int) $this->user_id;
	}
	
	/**
     * set user_id
     *
     * @author Pierre Raynaud
     * @param int $value
     */
	function setUserId($value)
	{
		$this->user_id = $value;
	}
	
	/**
     * get colonneid
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getColonneId()
	{
		return $this->colonne_id;
	}
	
	/**
     * set colonne_id
     *
     * @author Pierre Raynaud
     * @param $value
     */
	function setColonneId($value)
	{
		$this->colonne_id = $value;
	}
	
	/**
     * get ligne_id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getLigneId()
	{
		return $this->ligne_id;
	}
	
	/**
     * set ligne_id
     *
     * @author Pierre Raynaud
     * @param int $value
     */
	function setLigneId($value)
	{
		$this->ligne_id = $value;
	}
	
	/**
     * get evaluateur_id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getEvaluateurId()
	{
		return $this->evaluateur_id;
	}
	
	/**
     * set evaluateur_id
     *
     * @author Pierre Raynaud
     * @param int $value
     */
	function setEvaluateurId($value)
	{
		$this->evaluateur_id = $value;
	}
	
	/**
     * get valeur
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getValeur()
	{
		return $this->valeur;
	}
	
	/**
     * set valeur
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setValeur($value)
	{
		$this->valeur = trim($value);
	}
	
	/**
     * get date
     *
     * @author Pierre Raynaud
     * @return datetime
     */
	function getDate()
	{
		return $this->date;
	}
	
	/**
     * set date
     *
     * @author Pierre Raynaud
     * @param datetime $value
     */
	function setDate($value)
	{
		$this->date = $value;
	}
}
?>
